package com.exp.practice.workbench.dao;

import com.exp.practice.workbench.domain.Student;
import com.exp.practice.workbench.domain.StudentTest;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentTestDao {
    /**
     * 根据学生id获取学生做题
     * @param student
     * @return
     */
    List<StudentTest> getExercisesByStuId(Student student);

    /**
     * 增加一条答题记录
     * @param studentTest
     * @return
     */
    int insertExercise(StudentTest studentTest);

    /**
     * 更新一条答题记录
     * @param studentTest
     * @return
     */
    int updateExercise(@Param("studentTest") StudentTest studentTest);

    /**
     * 一次性保存多条记录
     * @param list
     * @return
     */
    int addExercise(List<StudentTest> list);

    /**
     * 返回是否存在一条学号为stuId，题目号为qid的记录
     * @param stuId
     * @param qid
     * @return
     */
    boolean existExercise(@Param("stuId") String stuId, @Param("qid") String qid);

    /**
     * 获取学生做错题目信息
     * @param skipCount
     * @param pageSize
     * @param stuId
     * @return
     */
    List<StudentTest> getWrongExercisesByStuId(@Param("skipCount") int skipCount, @Param("pageSizes")int pageSize, @Param("stuId") String stuId);

    /**
     * 获取学生的答题信息
     * @param stuId
     * @return
     */
    List<String> getQids(String stuId);

    /**
     * 获取学生做题历史记录
     * @param skipCount
     * @param pageSizes
     * @param stuId
     * @return
     */
    List<StudentTest> getHistoryQuestion(@Param("skipCount")int skipCount, @Param("pageSizes")int pageSizes, @Param("stuId")String stuId);

    /**
     * 获取总的错题
     * @param stuId
     * @return
     */
    int getTotalWrong(@Param("stuId") String stuId);

    /**
     * 获取总的历史记录
     * @param stuId
     * @return
     */
    int getTotalHistory(@Param("stuId")String stuId);
}
